package com.cn.mmd.model;

import java.util.ArrayList;
import java.util.List;

public class AnswerExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public AnswerExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andAnsweridIsNull() {
            addCriterion("answerId is null");
            return (Criteria) this;
        }

        public Criteria andAnsweridIsNotNull() {
            addCriterion("answerId is not null");
            return (Criteria) this;
        }

        public Criteria andAnsweridEqualTo(Integer value) {
            addCriterion("answerId =", value, "answerid");
            return (Criteria) this;
        }

        public Criteria andAnsweridNotEqualTo(Integer value) {
            addCriterion("answerId <>", value, "answerid");
            return (Criteria) this;
        }

        public Criteria andAnsweridGreaterThan(Integer value) {
            addCriterion("answerId >", value, "answerid");
            return (Criteria) this;
        }

        public Criteria andAnsweridGreaterThanOrEqualTo(Integer value) {
            addCriterion("answerId >=", value, "answerid");
            return (Criteria) this;
        }

        public Criteria andAnsweridLessThan(Integer value) {
            addCriterion("answerId <", value, "answerid");
            return (Criteria) this;
        }

        public Criteria andAnsweridLessThanOrEqualTo(Integer value) {
            addCriterion("answerId <=", value, "answerid");
            return (Criteria) this;
        }

        public Criteria andAnsweridIn(List<Integer> values) {
            addCriterion("answerId in", values, "answerid");
            return (Criteria) this;
        }

        public Criteria andAnsweridNotIn(List<Integer> values) {
            addCriterion("answerId not in", values, "answerid");
            return (Criteria) this;
        }

        public Criteria andAnsweridBetween(Integer value1, Integer value2) {
            addCriterion("answerId between", value1, value2, "answerid");
            return (Criteria) this;
        }

        public Criteria andAnsweridNotBetween(Integer value1, Integer value2) {
            addCriterion("answerId not between", value1, value2, "answerid");
            return (Criteria) this;
        }

        public Criteria andAnswertextIsNull() {
            addCriterion("answerText is null");
            return (Criteria) this;
        }

        public Criteria andAnswertextIsNotNull() {
            addCriterion("answerText is not null");
            return (Criteria) this;
        }

        public Criteria andAnswertextEqualTo(String value) {
            addCriterion("answerText =", value, "answertext");
            return (Criteria) this;
        }

        public Criteria andAnswertextNotEqualTo(String value) {
            addCriterion("answerText <>", value, "answertext");
            return (Criteria) this;
        }

        public Criteria andAnswertextGreaterThan(String value) {
            addCriterion("answerText >", value, "answertext");
            return (Criteria) this;
        }

        public Criteria andAnswertextGreaterThanOrEqualTo(String value) {
            addCriterion("answerText >=", value, "answertext");
            return (Criteria) this;
        }

        public Criteria andAnswertextLessThan(String value) {
            addCriterion("answerText <", value, "answertext");
            return (Criteria) this;
        }

        public Criteria andAnswertextLessThanOrEqualTo(String value) {
            addCriterion("answerText <=", value, "answertext");
            return (Criteria) this;
        }

        public Criteria andAnswertextLike(String value) {
            addCriterion("answerText like", value, "answertext");
            return (Criteria) this;
        }

        public Criteria andAnswertextNotLike(String value) {
            addCriterion("answerText not like", value, "answertext");
            return (Criteria) this;
        }

        public Criteria andAnswertextIn(List<String> values) {
            addCriterion("answerText in", values, "answertext");
            return (Criteria) this;
        }

        public Criteria andAnswertextNotIn(List<String> values) {
            addCriterion("answerText not in", values, "answertext");
            return (Criteria) this;
        }

        public Criteria andAnswertextBetween(String value1, String value2) {
            addCriterion("answerText between", value1, value2, "answertext");
            return (Criteria) this;
        }

        public Criteria andAnswertextNotBetween(String value1, String value2) {
            addCriterion("answerText not between", value1, value2, "answertext");
            return (Criteria) this;
        }

        public Criteria andAnswerurlIsNull() {
            addCriterion("answerUrl is null");
            return (Criteria) this;
        }

        public Criteria andAnswerurlIsNotNull() {
            addCriterion("answerUrl is not null");
            return (Criteria) this;
        }

        public Criteria andAnswerurlEqualTo(String value) {
            addCriterion("answerUrl =", value, "answerurl");
            return (Criteria) this;
        }

        public Criteria andAnswerurlNotEqualTo(String value) {
            addCriterion("answerUrl <>", value, "answerurl");
            return (Criteria) this;
        }

        public Criteria andAnswerurlGreaterThan(String value) {
            addCriterion("answerUrl >", value, "answerurl");
            return (Criteria) this;
        }

        public Criteria andAnswerurlGreaterThanOrEqualTo(String value) {
            addCriterion("answerUrl >=", value, "answerurl");
            return (Criteria) this;
        }

        public Criteria andAnswerurlLessThan(String value) {
            addCriterion("answerUrl <", value, "answerurl");
            return (Criteria) this;
        }

        public Criteria andAnswerurlLessThanOrEqualTo(String value) {
            addCriterion("answerUrl <=", value, "answerurl");
            return (Criteria) this;
        }

        public Criteria andAnswerurlLike(String value) {
            addCriterion("answerUrl like", value, "answerurl");
            return (Criteria) this;
        }

        public Criteria andAnswerurlNotLike(String value) {
            addCriterion("answerUrl not like", value, "answerurl");
            return (Criteria) this;
        }

        public Criteria andAnswerurlIn(List<String> values) {
            addCriterion("answerUrl in", values, "answerurl");
            return (Criteria) this;
        }

        public Criteria andAnswerurlNotIn(List<String> values) {
            addCriterion("answerUrl not in", values, "answerurl");
            return (Criteria) this;
        }

        public Criteria andAnswerurlBetween(String value1, String value2) {
            addCriterion("answerUrl between", value1, value2, "answerurl");
            return (Criteria) this;
        }

        public Criteria andAnswerurlNotBetween(String value1, String value2) {
            addCriterion("answerUrl not between", value1, value2, "answerurl");
            return (Criteria) this;
        }

        public Criteria andIssueidIsNull() {
            addCriterion("issueId is null");
            return (Criteria) this;
        }

        public Criteria andIssueidIsNotNull() {
            addCriterion("issueId is not null");
            return (Criteria) this;
        }

        public Criteria andIssueidEqualTo(Integer value) {
            addCriterion("issueId =", value, "issueid");
            return (Criteria) this;
        }

        public Criteria andIssueidNotEqualTo(Integer value) {
            addCriterion("issueId <>", value, "issueid");
            return (Criteria) this;
        }

        public Criteria andIssueidGreaterThan(Integer value) {
            addCriterion("issueId >", value, "issueid");
            return (Criteria) this;
        }

        public Criteria andIssueidGreaterThanOrEqualTo(Integer value) {
            addCriterion("issueId >=", value, "issueid");
            return (Criteria) this;
        }

        public Criteria andIssueidLessThan(Integer value) {
            addCriterion("issueId <", value, "issueid");
            return (Criteria) this;
        }

        public Criteria andIssueidLessThanOrEqualTo(Integer value) {
            addCriterion("issueId <=", value, "issueid");
            return (Criteria) this;
        }

        public Criteria andIssueidIn(List<Integer> values) {
            addCriterion("issueId in", values, "issueid");
            return (Criteria) this;
        }

        public Criteria andIssueidNotIn(List<Integer> values) {
            addCriterion("issueId not in", values, "issueid");
            return (Criteria) this;
        }

        public Criteria andIssueidBetween(Integer value1, Integer value2) {
            addCriterion("issueId between", value1, value2, "issueid");
            return (Criteria) this;
        }

        public Criteria andIssueidNotBetween(Integer value1, Integer value2) {
            addCriterion("issueId not between", value1, value2, "issueid");
            return (Criteria) this;
        }

        public Criteria andAnswerpersonidIsNull() {
            addCriterion("answerPersonId is null");
            return (Criteria) this;
        }

        public Criteria andAnswerpersonidIsNotNull() {
            addCriterion("answerPersonId is not null");
            return (Criteria) this;
        }

        public Criteria andAnswerpersonidEqualTo(String value) {
            addCriterion("answerPersonId =", value, "answerpersonid");
            return (Criteria) this;
        }

        public Criteria andAnswerpersonidNotEqualTo(String value) {
            addCriterion("answerPersonId <>", value, "answerpersonid");
            return (Criteria) this;
        }

        public Criteria andAnswerpersonidGreaterThan(String value) {
            addCriterion("answerPersonId >", value, "answerpersonid");
            return (Criteria) this;
        }

        public Criteria andAnswerpersonidGreaterThanOrEqualTo(String value) {
            addCriterion("answerPersonId >=", value, "answerpersonid");
            return (Criteria) this;
        }

        public Criteria andAnswerpersonidLessThan(String value) {
            addCriterion("answerPersonId <", value, "answerpersonid");
            return (Criteria) this;
        }

        public Criteria andAnswerpersonidLessThanOrEqualTo(String value) {
            addCriterion("answerPersonId <=", value, "answerpersonid");
            return (Criteria) this;
        }

        public Criteria andAnswerpersonidLike(String value) {
            addCriterion("answerPersonId like", value, "answerpersonid");
            return (Criteria) this;
        }

        public Criteria andAnswerpersonidNotLike(String value) {
            addCriterion("answerPersonId not like", value, "answerpersonid");
            return (Criteria) this;
        }

        public Criteria andAnswerpersonidIn(List<String> values) {
            addCriterion("answerPersonId in", values, "answerpersonid");
            return (Criteria) this;
        }

        public Criteria andAnswerpersonidNotIn(List<String> values) {
            addCriterion("answerPersonId not in", values, "answerpersonid");
            return (Criteria) this;
        }

        public Criteria andAnswerpersonidBetween(String value1, String value2) {
            addCriterion("answerPersonId between", value1, value2, "answerpersonid");
            return (Criteria) this;
        }

        public Criteria andAnswerpersonidNotBetween(String value1, String value2) {
            addCriterion("answerPersonId not between", value1, value2, "answerpersonid");
            return (Criteria) this;
        }

        public Criteria andAnswertimeIsNull() {
            addCriterion("answerTime is null");
            return (Criteria) this;
        }

        public Criteria andAnswertimeIsNotNull() {
            addCriterion("answerTime is not null");
            return (Criteria) this;
        }

        public Criteria andAnswertimeEqualTo(String value) {
            addCriterion("answerTime =", value, "answertime");
            return (Criteria) this;
        }

        public Criteria andAnswertimeNotEqualTo(String value) {
            addCriterion("answerTime <>", value, "answertime");
            return (Criteria) this;
        }

        public Criteria andAnswertimeGreaterThan(String value) {
            addCriterion("answerTime >", value, "answertime");
            return (Criteria) this;
        }

        public Criteria andAnswertimeGreaterThanOrEqualTo(String value) {
            addCriterion("answerTime >=", value, "answertime");
            return (Criteria) this;
        }

        public Criteria andAnswertimeLessThan(String value) {
            addCriterion("answerTime <", value, "answertime");
            return (Criteria) this;
        }

        public Criteria andAnswertimeLessThanOrEqualTo(String value) {
            addCriterion("answerTime <=", value, "answertime");
            return (Criteria) this;
        }

        public Criteria andAnswertimeLike(String value) {
            addCriterion("answerTime like", value, "answertime");
            return (Criteria) this;
        }

        public Criteria andAnswertimeNotLike(String value) {
            addCriterion("answerTime not like", value, "answertime");
            return (Criteria) this;
        }

        public Criteria andAnswertimeIn(List<String> values) {
            addCriterion("answerTime in", values, "answertime");
            return (Criteria) this;
        }

        public Criteria andAnswertimeNotIn(List<String> values) {
            addCriterion("answerTime not in", values, "answertime");
            return (Criteria) this;
        }

        public Criteria andAnswertimeBetween(String value1, String value2) {
            addCriterion("answerTime between", value1, value2, "answertime");
            return (Criteria) this;
        }

        public Criteria andAnswertimeNotBetween(String value1, String value2) {
            addCriterion("answerTime not between", value1, value2, "answertime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}